home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
archives
/
com
/
internet
/
sting
/
sting.lzh
/
STING
/
dialer
/
docs
/
rem_ctrl.txt
< prev
Wrap
Text File
|
1997-05-04
|
5KB
|
100 lines
INTRODUCTION
This file describes how other programs can remote control the STinG Dialer.
The Dialer can be requested to either dial, or hangup, a connection. The
requesting program (the requester) is told about success or the error that
occured. During remote controled dialing or hangup no user interaction with
the Dialer is required, i.e. no alerts will pop up. The requester basically
sends a message to the Dialer that tells the Dialer about the script file
to be used, and the maximum number of attempts that the Dailer is allowed
to do. A success or an error message is returned, the error message contains
a code that identifies the error. Requesting a hangup works likewise, how-
ever, no parameters are to be passed in that case.
With STinG a local area network (LAN) can be operated. Often there will be
a machine with a modem that is able to dial up a modem (phone) connection
to the outside world's Internet. Murphy's law says that whenever you need
an urgent connection to the Internet, and the modem is on hook, you'll be
working on the machine that is farthest from the one with the modem. To work
around Murphy's law, the Dialer's remote control facility uses UDP packets
for the request messages, so that any computer in the LAN can launch the
dial-up procedure.
Since clairvoyance is not one of the usual client's abilities, it must be
told where to send the UDP packets to (i.e. the address of the machine
running the Dialer). To that end, each STinG installation should have a
network environment entry (i.e. a line in DEFAULT.CFG) of the general form
`DIALER=address', where `address' is either a dotted quad IP address, or
the fully qualified domain name of the machine running the Dialer.
PROTOCOL
Any client that wishes to remote control the Dialer first calls the STinG
function getvstr() to find out the value of the configuration variable
"DIALER". The resulting string is the IP address or the fully qualified
domain name of the machine the Dialer is running on. Now a UDP message
is sent to the specified machine, the port is defined in REM_CTRL.H.
Each message consist of a number of bytes, specifying the meaning of the
message, and a few additional parameters. The first two bytes form an
integer saying if a dial-up (IP_DIAL_REQUEST) or a hang-up (IP_DIAL_HANGUP)
is requested. Nothing more is required for a hang-up request. For dial-up
requests the maximum number of attempts, and the dial script to be used,
must be specified too. The integer made of the third and the fourth byte
specifies the maximum number of dial-up attempts. Starting with the fifth
byte, the name of the dial script, terminated by a zero byte, follows.
After sending the message the requester should anticipate a UDP message
from the Dialer. This can be either IP_DIAL_DONE or IP_DIAL_ERROR. In case
of IP_DIAL_ERROR the third and the fourth byte form the actual error code.
The error codes can be
for IP_DIAL_REQUEST :
IP_IN_PROGRESS The Dialer is already dialing.
IP_IS_CONNECTED The Dialer already connected this port
before.
IP_SCR_NOT_FOUND The Dialer had problems loading the
script file.
IP_PORT_LOCKED Port could not be opened, probably
because another program uses it.
IP_MAX_EXCEEDED The specified maximum number of redials
have been carried out.
IP_FATAL_PROBLEM The Dialer got a fatal error response
from the modem.
IP_USER_ABORT The user aborted the dial process.
IP_OPEN_FAILED STinG refuses to accept the connection.
for IP_DIAL_HANGUP :
IP_IN_PROGRESS During the dial process hangup requests
cannot be processed.
IP_OPEN_FAILED Due to some strange reason the port
could not be reopened.
Note that if IP_OPEN_FAILED is responded to IP_DIAL_REQUEST, your modem
is still off hook ! Thus the telephone company will start to charge money
unless IP_DIAL_HANGUP is send ! For all the other error codes the modem
is on hook afterwards. The same holds for any response to IP_DIAL_HANGUP.
EXAMPLE
For an example look at the Pure C sample code DIALCTRL.C. It contains
a simple program that just implements the above discussed protocol for
requesting a dialup.
AUTHOR
Any further questions or good ideas for extensions should be directed
to :
Peter Rottengatter
Kriegerstrasse 18
30161 Hannover
Germany
perot@pallas.amp.uni-hannover.de